﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;

namespace AgendaManager.Service
{
    public class EmpresaDAO : DAOBase
    {
        internal static List<Empresa> RetrieveEntities(object dto, string filtro)
        {
            List<Empresa> dtos = new List<Empresa>();

            DataTable dt = GetDataTable(dto, filtro);

            if (dt.Rows.Count > 0)
                dtos = LlenarEmpresas(dto, dt);

            return dtos;
        }

        private static List<Empresa> LlenarEmpresas(object dto, DataTable dt)
        {
            List<Empresa> dtos = new List<Empresa>();

            foreach (DataRow dr in dt.Rows)
            {
                Empresa aux = new Empresa();
                PoblarObjetoDesdeDataRow(aux, dr);

                dtos.Add(aux);
            }

            return dtos;
        }

        internal static Empresa NuevaEmpresa(Empresa empresa)
        {
            try
            {
                int empresaId = GetNextId(empresa);

                if (empresaId != 0)
                {
                    empresa.Id = empresaId;
                    CreateEntity(empresa);

                    return empresa;
                }
                else
                {
                    throw new Exception("No se pudo obtener el siguiente id de la entidad: Caño");
                }
            }
            catch (Exception)
            {
                throw;
            }
        }

        internal static List<Empresa> RetrieveEntitiesWhere(object dto, string where)
        {
            List<Empresa> dtos = new List<Empresa>();

            DataTable dt = GetDataTableWhere(dto, where);

            if (dt.Rows.Count > 0)
                dtos = LlenarEmpresas(dto, dt);

            return dtos;
        }
    }
}